<?php

require_once 'Banco.php';
require_once 'Model/Imagem.php';
require_once 'DaoEmpresa.php';

class DaoImagemEmpresa extends Banco {

    function getImagemPrincipal($codigoEmpresa) {
        $ie = NULL;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT IEM_CODIGO, IEM_CODEMPRESA, IEM_DESCRICAO, IEM_IMAGEM, IEM_PRINCIPAL FROM TB_IMAGEMEMPRESA WHERE IEM_CODEMPRESA = ? AND lower(IEM_PRINCIPAL)='s'")) {
            $sql->bind_param('i', $codigoEmpresa);
            $sql->execute();
            $sql->bind_result($id, $empresa, $descricao, $imagem, $principal);
            $de = new DaoEmpresa();
            while ($sql->fetch()) {
                $ie = new Imagem();
                $ie->setCodigo($id);
                $ie->setDescricao($descricao);
                $ie->setObjeto($de->getEmpresa($empresa));
                $ie->setImagem($imagem);
                $ie->setPrincipal($principal);
            }
        }
        return $ie;
    }

    function getImagens($codigoEmpresa) {
        $imagens = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT IEM_CODIGO, IEM_CODEMPRESA, IEM_DESCRICAO, IEM_IMAGEM, IEM_PRINCIPAL FROM TB_IMAGEMEMPRESA WHERE IEM_CODEMPRESA = ?")) {
            $sql->bind_param('i', $codigoEmpresa);
            $sql->execute();
            $sql->bind_result($id, $empresa, $descricao, $imagem, $principal);
            $de = new DaoEmpresa();
            while ($sql->fetch()) {
                $ie = new Imagem();
                $ie->setCodigo($id);
                $ie->setDescricao($descricao);
                $ie->setObjeto($de->getEmpresa($empresa));
                $ie->setImagem($imagem);
                $ie->setPrincipal($principal);
                $imagens[] = (object) $ie;
            }
        }
        return $imagens;
    }

    function addImagem(Imagem $imagem) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($imagem->getObjeto(), 'Empresa')) {
            $empresa = $imagem->getObjeto()->getCodigo();
        } else {
            $empresa = NULL;
        }
        $descricao = $imagem->getDescricao();
        $img = $imagem->getImagem();
        $principal = $imagem->getPrincipal();
        if ($sql = $banco->prepare("INSERT INTO TB_IMAGEMEMPRESA VALUES (DEFAULT, ?, ?, '{$img}', ?);")) {
            $sql->bind_param('iss', $empresa, $descricao, $principal);
            $sql->execute();
            $sql->close();
        }
    }

    function updateImagem(Imagem $imagem) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($imagem->getObjeto(), 'Empresa')) {
            $empresa = $imagem->getObjeto()->getCodigo();
            $img = $imagem->getImagem();
            if ($this->getImagemPrincipal($empresa)!= NULL) {
                if ($sql = $banco->prepare("UPDATE TB_IMAGEMEMPRESA SET IEM_IMAGEM=? WHERE IEM_CODEMPRESA=? AND IEM_PRINCIPAL='S';")) {
                    $sql->bind_param('si', $img, $empresa);
                    $sql->execute();
                    $sql->close();
                }
            }else{
                $this->addImagem($imagem);
            }
        }
    }

}

?>
